package com.egg.mall.service.spu;

import com.egg.common.mybatis.service.IBaseService;
import com.egg.mall.entity.spu.SpuAttribute;
import com.egg.mall.enums.AttributeTypeEnum;
import com.egg.mall.model.request.SpuPostOrPut;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;


/**
 * @author east
 * @since 2022-08-08
 */
public interface ISpuAttributeService extends IBaseService<SpuAttribute> {

    /**
     * 临时规格ID前缀
     */
    String SPEC_TEMP_ID_PREFIX = "tid_";


    void saveAttr(Serializable spuId, List<SpuPostOrPut.SpuAttribute> list);

    Map<String, Long> saveSpec(Serializable spuId, List<SpuPostOrPut.SpuAttribute> list);

    List<SpuAttribute> findAttrBySpuId(Serializable spuId);

    List<SpuAttribute> findSpecBySpuId(Serializable spuId);

    List<SpuAttribute> findBySpuId(Serializable spuId);

    List<SpuAttribute> findBySpuId(Serializable spuId, Optional<AttributeTypeEnum> type);

    List<SpuAttribute> findBySpuId(Collection<? extends Serializable> spuId, Optional<AttributeTypeEnum> type);

    void delBySpuId(Collection<? extends Serializable> spuId);


}
